/*
 * Copyright (c) 2018 THL A29 Limited, a Tencent company. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

namespace TencentCloud.Essbasic.V20210526.Models
{
    using Newtonsoft.Json;
    using System.Collections.Generic;
    using TencentCloud.Common;

    public class ChannelCreateUserAutoSignEnableUrlRequest : AbstractModel
    {
        
        /// <summary>
        /// 渠道应用相关信息
        /// </summary>
        [JsonProperty("Agent")]
        public Agent Agent{ get; set; }

        /// <summary>
        /// 自动签场景:
        /// E_PRESCRIPTION_AUTO_SIGN 电子处方
        /// </summary>
        [JsonProperty("SceneKey")]
        public string SceneKey{ get; set; }

        /// <summary>
        /// 操作人信息
        /// </summary>
        [JsonProperty("Operator")]
        public UserInfo Operator{ get; set; }

        /// <summary>
        /// 自动签开通，签署相关配置
        /// </summary>
        [JsonProperty("AutoSignConfig")]
        public AutoSignConfig AutoSignConfig{ get; set; }

        /// <summary>
        /// 链接类型，空-默认小程序端链接，H5SIGN-h5端链接
        /// </summary>
        [JsonProperty("UrlType")]
        public string UrlType{ get; set; }

        /// <summary>
        /// 通知类型，默认不填为不通知开通方，填写 SMS 为短信通知。
        /// </summary>
        [JsonProperty("NotifyType")]
        public string NotifyType{ get; set; }

        /// <summary>
        /// 若上方填写为 SMS，则此处为手机号
        /// </summary>
        [JsonProperty("NotifyAddress")]
        public string NotifyAddress{ get; set; }

        /// <summary>
        /// 链接的过期时间，格式为Unix时间戳，不能早于当前时间，且最大为30天。如果不传，默认有效期为7天。
        /// </summary>
        [JsonProperty("ExpiredTime")]
        public long? ExpiredTime{ get; set; }


        /// <summary>
        /// For internal usage only. DO NOT USE IT.
        /// </summary>
        public override void ToMap(Dictionary<string, string> map, string prefix)
        {
            this.SetParamObj(map, prefix + "Agent.", this.Agent);
            this.SetParamSimple(map, prefix + "SceneKey", this.SceneKey);
            this.SetParamObj(map, prefix + "Operator.", this.Operator);
            this.SetParamObj(map, prefix + "AutoSignConfig.", this.AutoSignConfig);
            this.SetParamSimple(map, prefix + "UrlType", this.UrlType);
            this.SetParamSimple(map, prefix + "NotifyType", this.NotifyType);
            this.SetParamSimple(map, prefix + "NotifyAddress", this.NotifyAddress);
            this.SetParamSimple(map, prefix + "ExpiredTime", this.ExpiredTime);
        }
    }
}

